﻿/****************************************************************************/
/*											                                */
/* Clase : Zona           							                        */
/* Autor : Marc Esteve Fernández					                        */
/* Descripción: Zona geografica que incluye unos salones a ser              */
/* inspeccionados por el inspector de la zona                               */
/* 											                                */
/****************************************************************************/
using System;
using CRC.GestionSalones.Dominio.Clases;
using Iesi.Collections.Generic;

namespace CRC.Inspecciones.Dominio.Clases
{
    public class Zona
    {

        private int intID;
        private String strNombreZona= String.Empty ;
        private Persona inspector = null;
        private ISet<Salon> salones = new HashedSet<Salon>();
        
        /* Constructor por defecto*/
        public Zona()
        {
        }

        public virtual int Id
        {
            get { return intID; }
            set { intID = value; }
        }

        public virtual String Nombre
        {
            get { return strNombreZona; }
            set { strNombreZona = value; }
        }

        public virtual Persona Inspector
        {
            get { return inspector; }
            set { inspector = value; }
        }

        public virtual ISet<Salon> Salones
        {
            get { return this.salones; }
            set { this.salones = value; }
        }

        /*
         *  añadirSalon: Añadir salon a zona (bidireccional)
        */
        public virtual void añadirSalon(Salon salon) {
            this.salones.Add(salon);
            salon.Zona = this;
        }

        /*
         *  añadirSalon: Quitar salon de zona (solo quita la asociacion)
        */
        public virtual void quitarSalon(Salon salon)
        {
            this.salones.Remove(salon);
            salon.Zona = null;
        }

    }
}
